<?php
namespace Album\Model;
use Zend\InputFilter\Factory as InputFactory;
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterInterface;

class Album implements InputFilterAwareInterface
{
	public $id;
	public $artist;
	public $title;
	protected $inputFilter;
	public function exchangeArray($data)
	{
		$this->id = (!empty($data))? $data['id']: null;
		$this->artist = (!empty($data))? $data['artist']: null;
		$this->title = (!empty($data)) ? $data['artist']:null;
	}

    public function getArrayCopy()
    {
        return get_object_vars($this);
    }

    public function setInputFilter(InputFilterInterface $inputFilter)
    {
        throw new \Exception( "Not used" );
    }
	 
	public function getInputFilter()
	{
		if (!$this->inputFilter)
		{
			$inputFilter = new InputFilter();
            $factory     = new InputFactory();
			
			$inputFilter->add($factory->createInput(array(
				'name'=>'id',
				'required'=>true,
				'filters'=>array(
					array('name'=>'Int')
				)
			)));
			
			$inputFilter->add($factory->createInput(array(
				'name'=>'artist',
				'required'=>true,
				'filters'=>array(
					array('name'=>'StripTags'),
					array('name'=>'StringTrim'),
				),
				'validators'=>array(
					array(
						'name'=>'StringLength',
						'options'=>array(
							'encoding'=>'UTF-8',
							'min'=>'1',
							'max'=>'100',
						)
					)
				)
			)));
			
			$inputFilter->add($factory->createInput(array(
				'name'=>'title',
				'required'=>true,
				'filters'=>array(
					array('name'=>'StripTags'),
					array('name'=>'StringTrim'),
				),
				'validators'=>array(
					array(
						'name'=>'StringLength',
						'options'=>array(
							'encoding'=>'UTF-8',
							'min'=>'1',
							'max'=>'100',
						)
					)
				)
			)));
			$this->inputFilter =$inputFilter;
		}
		return $this->inputFilter;
	}

}